package com.spice.common.result;

import lombok.Getter;
import lombok.ToString;

/**
 * @author houyi
 * @date 2020/5/18 15:51
 * Description: 错误码和错误信息的枚举，用于规范错误返回的格式，避免多人协作时错误码冲突或同一错误信息错误码不同
 */
@Getter
@ToString
public enum ResultCodeEnum {

    /**
     *
     */
    SUCCESS(true, "20000","成功"),
    UNKNOWN_REASON(false, "20001", "未知错误"),


    BAD_SQL_GRAMMAR(false, "21001", "sql语法错误"),
    JSON_PARSE_ERROR(false, "21002", "json解析异常"),
    PARAM_ERROR(false, "21003", "参数不正确"),
    PARAM_VALID_ERROR(false, "21004", "参数校验错误"),
    PARAM_LACK(false, "21005", "必要参数缺失"),

    FILE_UPLOAD_ERROR(false, "21004", "文件上传错误"),
    FILE_DELETE_ERROR(false, "21005", "文件刪除错误"),
    EXCEL_DATA_IMPORT_ERROR(false, "21006", "Excel数据导入错误"),
    EXCEL_DATA_SIZE_ERROR(false, "21007", "Excel数据超过3000条错误"),
    EXCEL_HEADER_ERROR(false, "21008", "Excel没有头信息"),


    URL_ENCODE_ERROR(false, "23001", "URL编码失败"),
    ILLEGAL_CALLBACK_REQUEST_ERROR(false, "23002", "非法回调请求"),
    FETCH_ACCESSTOKEN_FAILD(false, "23003", "获取accessToken失败"),
    FETCH_USERINFO_ERROR(false, "23004", "获取用户信息失败"),
    LOGIN_ERROR(false, "23005", "登录失败"),
    LOGIN_IP_FREEZE(false, "23006", "登录失败，登录的ip地址暂时被封禁，请过一会再试"),
    LOGIN_ACCOUNT_FREEZE(false, "23007", "登录失败，登录的账号暂时被封禁，请过一会再试"),
    LOGIN_VERIFY_KEY_EMPTY(false, "23008", "需要输入验证码和验证码图片url"),
    LOGIN_VERIFY_KEY_ERROR(false, "23009", "验证码错误"),

    COMMENT_EMPTY(false, "24006", "评论内容必须填写"),


    ORDER_EXIST_ERROR(false, "25003", "课程已购买"),

    GATEWAY_ERROR(false, "26000", "服务不能访问"),

    CODE_ERROR(false, "28000", "验证码错误"),

    LOGIN_PHONE_ERROR(false, "28009", "手机号码不正确"),
    LOGIN_MOBILE_ERROR(false, "28001", "账号不正确"),
    LOGIN_PASSWORD_ERROR(false, "28008", "密码不正确"),
    LOGIN_DISABLED_ERROR(false, "28002", "该用户已被禁用"),
    REGISTER_MOBLE_ERROR(false, "28003", "手机号已被注册"),
    REGISTER_ACCOUNT_ERROR(false, "28008", "学号已被注册"),
    LOGIN_AUTH(false, "28004", "需要登录"),
    LOGIN_ACL(false, "28005", "没有权限"),
    SMS_SEND_ERROR(false, "28006", "短信发送失败"),
    SMS_SEND_ERROR_BUSINESS_LIMIT_CONTROL(false, "28007", "短信发送过于频繁"),

    NO_AUTHENTICATION(false, "30100", "没有登录"),
    NO_PERMISSION(false, "30200", "没有权限");

    private Boolean success;

    private String code;

    private String message;

    ResultCodeEnum(Boolean success, String code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }
}